package org.sun.sunshine.common;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    @ExceptionHandler(value = {Exception.class})
    @ResponseBody
    public Resp exceptionHandler(Exception e){
        //这里先判断拦截到的Exception是不是我们自定义的异常类型
        if(e instanceof BusinessException){
            BusinessException appException = (BusinessException)e;
            return Resp.error(appException.getCode(),appException.getMsg());
        }
        log.error("exception",e);
        //如果拦截的异常不是我们自定义的异常(例如：数据库主键冲突)
        return Resp.error(500,e.getMessage());
    }
}